// 定义一个接口来描述数组中的对象【版本】，【颜色】，【尺码】
export interface Attribute {
  id: number;
  createTime: string; // 假设这是 ISO 8601 格式的日期字符串
  updateTime: string; // 同样是 ISO 8601 格式的日期字符串
  name: string;
}
// 定义一个数组类型，该数组的元素是 Attribute 类型的对象
export type AttributeArray = Attribute[];
// 定义(品牌数据)
export interface grand {
  id: number;
  createTime: string; // 假设这是 ISO 8601 格式的日期时间字符串
  updateTime: string; // 同样是 ISO 8601 格式的日期时间字符串
  tmName: string; // 可能是“品牌名称”的缩写
  logoUrl: string; // 一个 URL 字符串，指向品牌的 logo 图片
}
//把grand对象转为数组
export type grandArray = grand[]
// 定义照片墙
export interface ImageData {
  id: number;
  createTime: string;
  updateTime: string;
  spuId: number;
  imgName: string;
  imgUrl: string;
}
// 定义照片墙数组
export type ImageDataArray = ImageData[];
// 定义SPU数据类型
export interface SPU {
  id?: number;
  createTime?: string; // 日期时间字符串
  updateTime?: string; // 日期时间字符串
  spuName: string;
  description: string;
  category3Id: number;
  tmId: number;
  spuSaleAttrList?: null | any[]; // 如果不清楚具体结构，可以使用any[]，或者更具体的类型定义
  spuImageList?: null | any[]; // 同上
  spuPosterList?: null | any[]; // 同上
}
// 定义SPU数组的接口（实际上这里直接使用SPU[]类型即可）
export type SPUArray = SPU[];
//定义销售属性值
export interface SaleAttrValue {
  id: number;
  createTime?: null; // 使用 ? 表示这个属性是可选的，且类型为 null
  updateTime?: null;
  spuId: number;
  baseSaleAttrId: number;
  saleAttrValueName: string;
  saleAttrName: string;
  isChecked?: null | boolean; // 假设 isChecked 可以是 null 或者一个布尔值
}
//定义销售属性
export interface SpuSaleAttr {
  id: number;
  createTime?: null;
  updateTime?: null;
  spuId: number;
  baseSaleAttrId: number;
  saleAttrName: string;
  spuSaleAttrValueList: SaleAttrValue[];
}
//整个销售属性完整ts类型
//直接定义数组类型，而不是一个包含数组的对象：
export type SpuSaleAttrsArray = SpuSaleAttr[];
//定义缺失的销售属性ts
export interface lackedAttr {
  id: number,
  saleAttrName: string
}
export type lackedAttrArray = lackedAttr[]
